import { ref } from 'vue';
import { defineStore } from 'pinia';

// 使用setup模式定义
export const userStore = defineStore('userStore', () => {
  const username = ref<string>('laochen');

  // 相对与vuex的action，支持同步异步写法;尽管pinia取消了mutation ,通过$state,$patch可以在任何地方修改状态
  // 但是为了编码的质量，方便排查，任何的状态修改最好还是通过action来操作
  function updateUserName(payload:string) {
    username.value = payload;
  }

  // 相对与vuex的getters，特性与computed相似，具有缓存性
  function getFullName() {
    return `未来守护者之-----${username.value}`;
  }

  return { username, updateUserName, getFullName };
});
